1. Technical Field
The present invention relates in general to power management of a data processing system, and in particular to a method and system for object oriented power management of a data processing system.
2. Description of the Related Art
Managing and conserving the usage of electrical power in computing equipment such as portable laptops and tablets is a primary engineering design concern. Of particular concern in mobile computing equipment, which typically operate with a battery as its primary source of power, is the conservation of electrical power in order to maximize operating time by efficiently managing and using the battery power. For example, one technique of power management powers down components of the computer system remaining idle for a specified period of time.
In many portable units, a self supporting power source, such as a battery, functions as the main power source when the unit is decoupled from its main external power source, such as 110 volts AC. In some instances, the battery functions as an auxiliary power source to maintain certain critical circuits active when the unit experiences a sudden loss of power. This keeps the unit's memory alive to retain any information stored in the memory which would be lost otherwise. Advanced management schemes monitor various functions and remove power from those elements when they are not needed to extend the time period that the device could operate from its internal power source. Further, a time out scheme puts the unit in a stand-by mode after a certain time period in order to preserve power. For example, it is common for modern laptop computers to remove power from their display screen when the computer remains idle for a specified period of time.
Laptops are designed to operate for a certain number of hours from its internal power source. In order to extend the self-sustaining time period of these laptops while keeping the battery size and weight to a minimum, a sophisticated power management scheme is required to provide power only to those circuits and devices which require such power and to remove power or make a given circuit enter into a low power consumption mode when that circuit is not needed. The management scheme must also continually monitor the various circuits and devices in order that power can be reapplied immediately to activate such circuits and devices when needed.
More significantly, large modern mainframe computers have complex configurations which require large amounts of power. Management and budgeting of the available power to these large systems presents similar problems as those presented in addressing laptop power management. For example, the computer system may have a limited supply of power to operate the system which has a potential consumption that far exceeds this power supply. A power management system is required to budget the power throughout the system.
The current generation of power management techniques have a number of problems. The first problem with modern power management systems in mainframe computers and laptops alike is that the power management architecture is system specific. It would be desirable to provide a power management architecture which can be utilized with any computer system. Further, it would be desirable to provide a power management architecture which can operate on any computer system but which can be customized to any desired configuration by designing the rules to which the architecture responds so that they meet the desired power criteria optimized for the computer system.
Thus, it would be desirable to provide the power management architecture which has broad application to different types of systems. The operating system or kernel to which an architecture is designed may eventually run on a variety of computer systems. This requires that the power management architecture be general and enduring in systems ranging from a hand-held relatively fixed function system to a high powered system that has thousands of processors. Each type of system imposes its own key requirements that must be satisfied by the power management architecture. The following list of system types describes each type of system and what its key requirements might be.
1. MPP Systems PA0 2. Server Systems PA0 3. Desktop Systems PA0 4. Laptop Systems PA0 5. Embedded Systems PA0 6. PDA Systems
These systems are "Massively Parallel Processor" systems that may contain hundreds or thousands of processing elements. The goal of these types of systems is to provide "raw" performance. That performance is usually oriented towards processing power but usually has fairly high bandwidth I/O for feeding the processor performance. Anything that would tend to inhibit or limit the performance of the system is to be avoided. A power management architecture must be capable of not interfering with the system's performance.
These systems are used for delivering some service to a number of other client systems. Typically they are used as a file service providing (relatively) large numbers of files to multiple clients. However this type of system can be used to provide any type of service that is to be shared (i.e. printers). The main requirement that these systems have is that the data is reliable and the service is available a high percentage of the time. A power management architecture can augment the needs of a server system by notifying the system of impending power outages and possibly switching to backup power sources to "ride out" the power outage.
These systems are used primarily by end users and are the systems that end users typically interact with. While there are many attributes about this type of system that concern end users, the one that is probably the most important for end user satisfaction is response time. That is, when a user initiates some action on the system, the time in which it takes for the user to "see" some response in large part determines the user's satisfaction with the system and greatly influences the user's perception of the speed or performance of the system. A power management architecture must not cause large (perceptible) increases in the response time of this type of system.
These types of systems are similar to desktop systems in that they are used by end users. However, unlike desktop systems (which remain largely in one location) these systems are mobil. That is they are moved around alot. As part of the mobility of these systems, there is a portable power supply (usually in the form of a battery). As in desktop systems, laptop systems have response time as an important criteria. However, because of their mobility, there is the requirement that the portable power supply provide power for as long a period of time as possible. This is sometimes at odds with the desire for fast response time, but some response time is usually traded off to obtain longer battery life. These types of systems are where the majority of the focus of power management has been placed in the past. This will continue to be true until either power consumption of the system itself can be greatly reduced so as to increase battery life, or battery technology becomes sufficiently advanced to where power consumption is no longer a concern, or more likely some combination of refinement where power consumption is somewhat reduced and battery technology is refined to yield the desired "long" battery life.
These types of systems fall into two sub-categories. "Single board computers" that are usually used in some type of process control such as plant floor controllers, and "controllers" that are used as part of a sub-system in another type of system such as a disk controller in a server system. The main focus of these types of system is usually real-time. That is, the software has certain expectations of the system performance characteristics that it relies on to achieve correct operation (i.e. program correctness is judged not only on algorithmic correctness but also contains a time component). A power management architecture must allow for real-time applications to operate in a manner so as to allow them to meet their timing criteria.
These systems are "Personal Digital Assistants" or hand-held systems. They are much smaller than laptop systems and are usually not as flexible as their more general counter-part systems. There are two main requirements that PDA systems exhibit. The first is extremely long battery life. If a laptop system's battery life is measured in hours or a few days, a PDA system's battery life is measured in at least months. Performance of the system is usually traded off to achieve a long battery life. The other requirement is what is called "instant on." That is the "boot" sequence for a PDA is measured in fractions of a second.
In addition to laptops and PDA's, power management is becoming important in all these types of systems. In all systems, there needs to be a power supply. In stationary systems it is the power supply that converts the wall supply (120 V, 60 HZ in the U.S.) to the various DC voltages needed internally in the system. The more current required for a given voltage, the larger the power supply. Larger power supplies generally cost more than smaller power supplies. To keep the cost of the system down, a manufacturer will use the smallest power supply that is believed to get the job done. However, the end user may wish to configure a system that can consume more power than the supply can provide. Historically, the user would usually resort to a purchasing a system with a larger power supply at greater cost. It would be desirable to have a system that budgets power in the system to solve this problem.
Another problem may arise in a system using a wall supply. A power supply that is capable of producing more power internal to the system, by necessity must require more input power. In certain situations, it is not possible to get more input power. Take for example an installation that has 100 systems that each consume 500 watts. This results in an overall power consumption of 50 KW. If the building that these systems is located in is capable of supporting a 60 KW load, everything is fine. But if those systems were to be replaced with systems that consume 750 watts each, there would be a problem because the total power consumption would be 75 KW which is 15 KW over what the building can support. This is why one sees more and more of the low power consuming "green machines" appearing. Therefore, power management is important to all types of systems and not just laptops and PDAs.
The power management architecture must not rely on any implementation specifics in order to define the architecture. For example, some processor architectures have specific additions to deal with power management (such as special execution modes for power management code). The power management architectural definition must not presume particular processor architectural features. This would severely limit the applicability of the architecture to other processor architectures.
Machines like the IBM Thinkpad series laptops are based on the Intel Advanced Power Management Architecture and its precursors. These techniques are limited to specialized Intel architecture processors in the SL series and do not work for software systems that are based on open systems technology.
Advanced Power Management uses a specialized processor mode called System Management Mode to execute code that handles power events. Unfortunately, the use of such a mode violates the architectural principles of open systems. Open systems assume that they have complete control over processor operation. They execute solely in the ordinary privileged mode of the machine, generally with the address translator active. In the presence of real time work, all the scheduling and all the algorithms used to manage the processor resources are invalidated if the hardware enters System Management Mode.
Moreover, on multiprocessor systems, if one processor enters System Management Mode, the other processors in the multiprocessor complex may conclude that it has failed and attempt to eliminate it from the system. Should the process ever resume normal execution, the system becomes inoperable. In addition, if a processor enters system management mode while processing in a multiprocessor complex, deadlock may occur during certain particular types of critical sections of the process. For instance, if the operating system kernel is doing a Translation Lookaside Buffer shootdown, processors go through a sequence of spin and acknowledge cycles. Should a processor that is spinning enter system management mode, all of the processors in the system can wind up spinning.
Finally, Advanced Power Management depends upon the existence and use of a Basic Input/Output System (BIOS). Open systems do not use BIOS since they are portable, may offer real time support, execute on multiprocessor hardware and provide directly all of the functions of the BIOS layer. As can be seen by the problems detailed above, Advanced Power Management cannot be used on open systems.
When the notion of "real time" is introduced, traditional power management designs tend to break down, in that they would tend to solve the problem by either disallowing "real time" applications from running, or turning off power management. This results in a very sub-optimal solution. If one considers that multimedia is a real time application and that they are becoming more prevalent in the marketplace, then real time is very much a consideration that must be dealt with by a power management architecture. The reason that "real time" is hard when considered with power management, is that "real time" requires predictable availability of service (i.e. known subsystem response times). Traditional power management on the other hand is under no obligation to provide consistent subsystem response time, its goal is to reduce power at the expense of performance and subsystem response time and that those two parameters are likely to vary depending upon "perceived" system activity.
In addition to the non-portability of modern power management systems and the inability to budget the total power consumed in the system, current power management systems take no account of the power costs associated with making a transition from one power state to another, nor are they capable of budgeting power. The prior art is only capable of minimizing the power consumption of the computer system components. No value is placed on the power requirements of a given state, and state transitions are assumed to be of zero cost and instantaneous. For example, in an effort to minimize power consumption, the power management will assume that the disk drive consumes more power while in operation and much less when spun down. Thus, if the disk drive is not used for a time, the power management will shut the disk down. The problem with this simplistic approach to power management is that it does not take into consideration the power consumed while spinning the disk down or the power consumed while spinning the disk back up to be used again. Thus, if the disk drive consumes a different amount of power and takes some time to spin down and a different amount of power and time to spin up, the power management architecture should take these costs into account when determining the desirability of shutting down the disk drive to conserve power.
A related problem is that of thermal management. It would be desirable for the power management system to take into account the thermal affects on power consumption and supply, component reliability and overall system performance when making decisions about the proper distribution and power throughout the computer system.
Therefore, it would be desirable to provide a power management architecture for a data processing system which is not hardware specific. This would remove the need to redesign the power management architecture for each computer application. By making the power management more portable across platforms, its structure would be simplified, allowing more complex control functions to be easily incorporated into the power management. It would further be desirable for such a system to budget the available power throughout the system. Still further, the power management architecture must not rely on any implementation specifics in order to define the architecture. The power management system would also take into account the power cost of state transitions. Last, the power management system should take into account the thermal effects on power consumption and supply.